1. 手势识别介绍

本功能可以检测画面中的手掌与手掌的21个关键点,并描绘出手掌的各个关键点;可以学习、识别、追踪手势。21个关键点包含:手腕(1个)、每根手指的4个关节点(拇指、食指、中指、无名指、小指各4个,分别对应根部、第一节、第二节、指尖)。

Interface Diagram 1 Interface Diagram 2

2. 手势识别使用说明

这一部分我们将了解如何使用HUSKYLENS 2检测画面中的手掌与关键点,学习、识别指定手势。

2.1 选择手势识别功能

给HUSKYLENS 2供电,启动成功后,找到“手势识别”功能。

Interface Diagram

2.2 观察手掌检测效果

将HUSKYLENS 2对着有手掌的画面,检测到手掌时,屏幕上会用白色方框,框出画面中的所有手掌,并用白色圆点标记出手掌上的21个关键点。

Interface Diagram

2.3 学习手势,观察结果

对准要学习的某个手掌,调整HUSKYLENS 2“看”的角度,使屏幕中间的“十”字位于白色框内,多角度学习学习手势时,可以长按A键,调整HUSKYLENS 2“看”的角度,对该手势进行多角度学习,如下图。

从多个角度学习手势能提高模型识别出已学习手势的准确率。多角度学习时会显示学习进度,例如“学习中 33/40:ID1”,其中“33/40”意为该手势最多学习40张图,当前已经学习了33张图。

Interface Diagram

学习完成后,如识别到已学习的手势,屏幕将以彩色方框框出该手势,并在上方显示手势名字、ID号及置信度,例如“手势:ID1 93%”。其中名字默认为“手势”,设置名字请看“参数设置”;"ID1"即学习的第一个手势;“93%”是指置信度,表示在手势识别功能下,模型认为识别到的目标手势属于某个手势的可能性。"ID1 93%"即模型认为这个手势有93%的可能性是ID1手势。学习更多手势,可依此类推。

Interface Diagram

3. 手势识别参数设置

HUSKYLENS 2出厂的默认参数已满足基础功能使用需求,如需更细化的功能,可手动调节各个参数。以下参数均基于“手势识别”功能,因此,首先确保已进入“手势识别”功能,如图所示。

Interface Diagram

选择要修改的参数,可通过向左或向右滑动屏幕下方的参数文字进行选择。

Interface Diagram

3.1 遗忘ID

如需遗忘前面学习过的所有手势:第一步,点击屏幕上的“遗忘ID”;第二步,出现弹窗“遗忘全部ID和名字”,点击“确认”。

Interface Diagram

此时,可将HUSKYLENS 2对准之前学习过的手势,HUSKYLENS 2屏幕出现白框,未显示该手势的ID,说明“遗忘”完成。

Interface Diagram

3.2 检测阈值

检测阈值控制手掌检测的敏感度:阈值越低,“认定是否为手掌”的标准越宽松(容易把不是手掌的误认为手掌,但很少漏掉真手掌);阈值越高,标准越严格(不容易误判,但可能漏检真实手掌)。
设置步骤:点击“检测阈值”,其上方出现参数调节滑杆,左滑变小,右滑变大,效果如图。

Interface Diagram

3.3 识别阈值

“识别阈值”控制手势识别的严格程度:阈值越低,匹配画面中的手势为某个已学习手势的条件越宽松(容易误识别,但不容易漏识别);阈值越高,条件越严格(容易漏识别,但不容易误识别)。
设置步骤:点击“识别阈值”,其上方出现参数调节滑杆,左滑变小,右滑变大,效果如图。

Interface Diagram

3.4 NMS阈值

NMS阈值(Non-Maximum Suppression)非极大值抑制,是视觉识别中的一个常见参数,用来筛选识别框。在视觉识别任务中,模型往往会在同一个识别目标周围预测出多个相互之间可能有重叠的识别框。如果不进行筛选就可能出现:一个目标物体被多个框同时框出,这些框相互之间有交叉重叠的现象,这时就可以通过调整NMS 阈值来去掉交叉重复的框,只保留最优的一个。
通俗来说,NMS 阈值决定了 两个框重叠多少才算“重复”。举例来讲:如果阈值低(比如 0.3):两个框只要有点重叠,就会认为是重复的,去掉其中一个。如果阈值高(比如 0.7):两个框重叠很多才会被认为是重复的,保留下来的框可能更多。
高阈值适合密集/遮挡场景,能抓住更多手掌(手势),但可能出现“一掌多框”。低阈值适合清晰单手掌场景,确保每掌一框,但可能漏掉模糊手掌。
设置步骤:点击“NMS阈值”,其上方出现参数调节滑杆,左滑变小,右滑变大。

Interface Diagram

3.5 设置名字

本参数可以给学习过的手势设置名字,中英文均可。
设置步骤:点击“设置名字”,上下滑动左上角的数字,选择为哪个ID设置名字;点击屏幕上的键盘可设置名字,如左图;设置完毕需点击右下角键保存,保存成功则右上角会显示绿色对勾标志。

Interface Diagram

3.6 显示名字

本参数可以控制识别到手势时,是否显示名字,默认为显示。
设置步骤:点击“显示名字”,其上方开关为蓝色,即打开状态,识别到手势时,会显示其名字,效果如左图;点击开关,开关颜色变为白色,即关闭状态,识别到手势时,不会显示名字,效果如右图。

Interface Diagram

3.7 恢复默认

本参数可将所有设置项恢复为默认状态,并遗忘已学习的ID和名字,但不清空导出的模型(关于导出模型请看下文)。
设置步骤:点击“恢复默认”,出现“恢复默认配置”弹窗后,点击“确认”。

Interface Diagram

3.8 导出模型

本参数可将当前设置的参数、学习的ID、设置的名字,保存、导出到HUSKYLENS 2本地内存。适用于迁移参数至另一个HUSKYLENS 2等场景。此操作无需插TF卡。
导出步骤:点击“导出模型”,出现左图“保存配置到”弹窗时,上下滑动数字,选择保存为几号模型(共可保存5个模型),随后点击弹窗左下角的“确认”按钮以保存。确认后,自动导出,如右图。

Interface Diagram

查看导出的模型:弹窗“导出中”消失后,可以通过电脑查看导出的模型文件。
首先,将HUSKYLENS 2连接至电脑USB接口。

Interface Diagram

其次,通过电脑,根据下图路径可访问HUSKYLENS 2的内存,可查看到扩展名为.json和.bin两个模型相关文件,扩展名前面的数字就是保存配置时选择的“模型号”。2个文件均可复制、粘贴到别处。

Interface Diagram

3.9 导入模型

本参数可以将HUSKYLENS 2(以下称“二哈A”)导出的模型导入到另一个HUSKYLENS 2(以下称“二哈B”)上,以便二哈B不用重新调整参数、重新学习就可以把二哈A已学习的手势、已调整的参数复制过来。
导入步骤:
第一步,将二哈A连接电脑,把导出的文件复制到电脑桌面。
第二步,将二哈B连接电脑,把上一步的文件粘贴到二哈B的指定文件夹,路径如图所示。(如找不到hand-recognition文件夹,请先执行第三步,导入过模型,会自动创建本文件夹,随后再回到第二步。)

Interface Diagram

第三步,首先确认已经进入到“手势识别”功能,然后点击“导入模型”,出现“加载配置”弹窗后,上下滑动数字,选择加载几号模型,此处应与上一步保存的模型号一致。例如,粘贴进二哈B的模型文件为config1.json,故选择数字1。最后,点击“确认”以导入。

Interface Diagram

第四步,等待弹窗“加载中”消失,即导入完成。

Interface Diagram

随后可查看二哈B与二哈A的各项参数、已学习手势是否一致。如下方左图为二哈B导入模型前识别状况,右图为导入后识别状况。

Interface Diagram

4. 相关编程示例